|
|
Hlavní nabídka Prohlížení IS/STAG
Nalezené předměty, počet: 1
Stránkování výsledků vyhledávání
Nalezeno 1 záznamů
Export do Xls
Informace o předmětu
KIV / PC
:
Popis předmětu
Pracoviště / Zkratka
|
KIV
/
PC
|
Akademický rok
|
2023/2024
|
Akademický rok
|
2023/2024
|
Název
|
Programování v jazyce C
|
Způsob zakončení
|
Zkouška
|
Způsob zakončení
|
Zkouška
|
Akreditováno / Kredity
|
Ano,
6
Kred.
|
Forma zakončení
|
Ústní
|
Forma zakončení
|
Ústní
|
Rozsah hodin
|
Přednáška
3
[HOD/TYD]
Cvičení
2
[HOD/TYD]
|
Zápočet před zkouškou
|
Ano
|
Zápočet před zkouškou
|
Ano
|
Automatické uznávání zápočtu před zkouškou
|
Ne
|
Počítán do průměru
|
ANO
|
Vyučovací jazyk
|
Čeština
|
Obs/max
|
|
|
|
Automatické uznávání zápočtu před zkouškou
|
Ne
|
Letní semestr
|
0 / -
|
0 / -
|
0 / -
|
Počítán do průměru
|
ANO
|
Zimní semestr
|
84 / -
|
1 / -
|
0 / 5
|
Opakovaný zápis
|
NE
|
Opakovaný zápis
|
NE
|
Rozvrh
|
Ano
|
Vyučovaný semestr
|
Zimní semestr
|
Vyučovaný semestr
|
Zimní semestr
|
Minimum (B + C) studentů
|
10
|
Volně zapisovatelný předmět |
Ano
|
Volně zapisovatelný předmět
|
Ano
|
Vyučovací jazyk
|
Čeština
|
Počet dnů praxe
|
0
|
Počet hodin kontaktní výuky |
|
Hodnotící stupnice |
1|2|3|4 |
Periodicita |
každý rok
|
Hodnotící stupnice pro zp. před zk. |
S|N |
Periodicita upřesnění |
|
Základní teoretický předmět |
Ne
|
Profilující předmět |
Ano
|
Základní teoretický předmět |
Ne
|
Hodnotící stupnice |
1|2|3|4 |
Hodnotící stupnice pro zp. před zk. |
S|N |
Nahrazovaný předmět
|
Žádný
|
Vyloučené předměty
|
Nejsou definovány
|
Podmiňující předměty
|
Nejsou definovány
|
Předměty informativně doporučené
|
KIV/PPA a KIV/ADT a KIV/PT a KIV/TI a KIV/PCT
|
Předměty,které předmět podmiňuje
|
Nejsou definovány
|
Graf četnosti udělených hodnocení studentům napříč roky:
Obrázek PNG
,
XLS
|
Cíle předmětu (anotace):
|
Vybavit studenty potřebnými znalostmi a dovednostmi tak, aby byli schopni samostatně a efektivně programovat v jazyce ANSI C a řešit celé spektrum problémů, k jejichž řešení je dnes jazyk ANSI C primárně určen. Důraz je kladen na schopnost psát vysoce strukturovaný, kvalitní a čitelný zdrojový kód a také vytvářet multiplatformní aplikace.
|
Požadavky na studenta
|
Student má nárok na zápočet tehdy, jestliže odevzdá včas semestrální práci dle zvoleného zadání a získá za ní (za program a dokumentaci dohromady) celkem alespoň 21 bodů. Nejvíce lze získat za semestrální práci 70 bodů. V případě mimořádných výkonů studenta (vynikající nadprůměrná práce, originální řešení zadaného problému, mimořádná aktivita, atp.) udělí vyučující v průběhu semestru další body, které se započítávají do celkového výsledku.
Z důvodu průběžné aktualizace předmětu je pro získání zápočtu při opakovaném zapsání předmětu (viz SZŘ čl. 24 odst. 3) nutné souhlasné vyjádření garanta předmětu.
Zkouška probíhá u počítače - student dostane za úkol vytvořit nebo doplnit krátký program v jazyce ANSI C a demonstrovat jeho bezchybnou funkčnost. U zkoušky je možné získat až 30 bodů podle kvality odvedené práce (hodnotí se porozumění problému, čitelnost kódu, dodržování kultury jazyka C, efektivita řešení a správné použití konstrukcí jazyka C).
Podrobné informace viz http://amos.fav.zcu.cz/pc.
Upozornění:
Termíny a forma ověřování splnění požadavků mohou být upraveny s ohledem na opatření vyhlášená v souvislosti s vývojem epidemiologické situace v ČR.
|
Obsah
|
Níže uvedená témata představují okruhy probírané látky, neodpovídají přesně jednotlivým rozvrhovaným přednáškám:
(0) Úvodní informace - představení předmětu, jeho cíle a náplň. Rámcový program přednášek a cvičení. Organizace předmětu, průběh semestru. Požadavky k zápočtu a zkoušce, podmínky absolvování předmětu. Důležité informace a zdroje studijních materiálů.
(1) Základní technické a historické informace o jazyce C. Použití, výhody a nevýhody, silné a slabé stránky. Stručný úvod do lexiky a syntaxe, nejjednodušší programy. Program typu "Hello, world!", vazba programu na operační prostředí.
(2) Bližší pohled na syntax jazyka C, klíčová slova, základní konstrukce řízení běhu programu. Podmíněné a nepodmíněné větvení programu (if - else, return, break, continue), konstrukce switch, cykly (for, while, do).
(3) Deklarace proměnných, jednoduché datové typy a jejich definice, datový typ pole, ukazatel, výčet, struktura, bitové pole, union, datový typ funkce, definice vlastního datového typu, definice konstant, deklarace a definice funkcí, přiřazovací příkaz, vstupně-výstupní operace, prázdný příkaz a příkaz skoku.
(4) Výrazy, koncepty L-value a R-value, operátory, volání funkcí, předávání parametrů funkcím, přetypování čili explicitní typová konverze, podmíněný výraz, dosazovací výraz a dosazovací operátory, čárkovaný výraz.
(5) Preprocesor jazyka C, lexikální konvence preprocesoru, definice maker preprocesoru a maker s parametry, rekurze maker, předdefinovaná makra v ANSI C, vkládání hlavičkových souborů, podmíněný překlad, předávání informací překladači - příkaz #pragma.
(6) Řízený a automatizovaný překlad - nástroj make, příprava makefile, komentáře, tvorba pravidel, explicitní a implicitní pravidla, definice cílů, symbolické cíle, makra v makefile, příkazy operačního systému v makefile.
(7) Standardní knihovna jazyka C: Vstupně-výstupní operace, soubory a proudy, standardní proudy stdin, stdout a stderr, operace se soubory, formátovaný vstup a výstup, chyby při práci se soubory, jejich detekce a řešení, pokročilé souborové operace.
(8) Standardní knihovna jazyka C: Správa paměti, základní operace s pamětí - alokace a uvolnění bloku, realokace bloků, dynamická pole, pole jako argumenty funkcí, znakové řetězce, funkce pro práci s řetězci.
(9) Standardní knihovna jazyka C: Znakové a řetězcové konstanty, funkce pro zpracování znaků, matematické funkce, generátor náhodných čísel, technika generování náhodných čísel s jiným než rovnoměrným rozdělením.
(10) Standardní knihovna jazyka C: Datum a čas, měření doby běhu programu, práce s kalendářním časem, výpočet rozdílu časových údajů. Řídicí funkce a diagnostika, ladicí makra, příkazový procesor operačního systému, násilné ukončení programu, ukončovací funkce, signály. Standardní rozšíření jazyka podle normy ANSI C, ošetření chybových stavů, práce s proměnnými operačního prostředí, prohledávání bisekcí, řazení algoritmem QuickSort. Funkce s proměnným počtem argumentů.
(11) Programátorský model procesoru. Registry: všeobecné registry (střadače), segmentové registry, zvláštní registry, příznakový registr. Typy dat, endian procesoru. Volání podprogramů. Paměťové modely, mapa paměti.
(12/v případě dostatku času) Multiplatformní knihovny na tvorbu grafických uživatelských rozhraní (např. GTK+, apod.). Rámcový přehled vlastností a technika programování aplikací v GTK+. Získání, instalace a specifika překladu programů s GTK+. Minimální aplikace v GTK+. Přidávání vizuálních komponent - widgetů. Řízení činnosti aplikace událostmi.
|
Aktivity
|
|
Studijní opory
|
|
Garanti a vyučující
|
-
Garanti:
Ing. Kamil Ekštein, Ph.D. (100%),
-
Přednášející:
Ing. Kamil Ekštein, Ph.D. (100%),
-
Cvičící:
Ing. Kamil Ekštein, Ph.D. (100%),
Ing. Vojtěch Frič (100%),
Ing. František Pártl (100%),
Ing. Jakub Sido (100%),
Ing. Jan Strnádek (100%),
|
Literatura
|
-
Základní:
Materiály, studijní pomůcky, podpůrný SW
(Ekštein, Kamil)
-
Základní:
Herout, Pavel. Učebnice jazyka C. 1. díl. 6. vyd. České Budějovice : Kopp, 2009. ISBN 978-80-7232-383-8.
-
Rozšiřující:
Kernighan, Brian W.; Ritchie, Dennis M. Programovací jazyk C. 2. vyd. Bratislava : Alfa, 1989. ISBN 80-05-00154-1.
-
Doporučená:
Salus, Peter H. Imperative Programming Languages. Macmillan Technical Pub, 1998. ISBN 978-1578700097.
-
Doporučená:
Virius, Miroslav. Jazyky C a C++ : kompletní průvodce. 2., aktualiz. vyd. Praha : Grada, 2011. ISBN 978-80-247-3917-5.
-
Doporučená:
Herbison, S.P., Steele, G.L. Referenční příručka jazyka C. Science, 1996. ISBN 80-901475-50.
-
Doporučená:
Kernighan, Brian W.; Ritchie, Dennis M. The C Programming Language. 2. vyd. Prentice Hall, 1988. ISBN 978-0131103627.
-
On-line katalogy knihoven
|
Časová náročnost
|
Všechny formy studia
|
Aktivity
|
Časová náročnost aktivity [h]
|
Projekt individuální [40]
|
40
|
Praktická výuka [vyjádření počtem hodin]
|
30
|
Příprava na zkoušku [10-60]
|
30
|
Kontaktní výuka
|
65
|
Celkem
|
165
|
|
Předpoklady
|
Odborné znalosti - pro úspěšné zvládnutí předmětu se předpokládá, že je student před zahájením výuky schopen: |
prakticky využívat nabyté znalosti z předmětů Počítače a programování 1 a Počítače a programování 2 |
samostatně psát jednoduché programy v libovolném strukturovaném imperativním nebo objektově orientovaném programovacím jazyce (např. Java, Pascal, C#, PHP, BASIC, apod.) |
rozumět a aplikovat základní poznatky z oblasti teoretické informatiky (algoritmická složitost, množství informace, apod.) |
číst a porozumět anglicky psané dokumentaci, referenční příručce |
Odborné dovednosti - pro úspěšné zvládnutí předmětu se předpokládá, že student před zahájením výuky dokáže: |
algoritmizovat jednoduché až středně obtížné problémy |
provádět elementární analýzu a dekompozici předloženého problému, navrhnout jeho algoritmické řešení |
spolehlivě ovládat základní vývojářské nástroje (programátorský textový editor, terminál/příkazový procesor OS, 2-panelový souborový manažer, atp.), má zkušenost s libovolným integrovaným vývojovým prostředím (např. Eclipse, apod.) |
Obecné způsobilosti - před zahájením studia předmětu je student schopen: |
bc. studium: své učení a pracovní činnost si sám plánuje a organizuje, |
bc. studium: efektivně využívá různé strategie učení k získání a zpracování poznatků a informací, hledá a rozvíjí účinné postupy ve svém učení, |
|
Výsledky učení
|
Odborné znalosti - po absolvování předmětu prokazuje student znalosti: |
programovacího jazyka ANSI C a základní znalost objektově orientovaného rozšíření C++ (v rozsahu pro uvedení do samostatného dalšího studia) |
obecné principy imperativních programovacích jazyků se zvláštním zřetelem na nízkoúrovňové programování |
uspořádání běhového prostředí procesů z hlediska programátora (uspořádání paměti, činnost CPU, atp.) |
Odborné dovednosti - po absolvování předmětu prokazuje student dovednosti: |
psát komplexní programy v jazyce ANSI C pro všechny podporované platformy |
psát multiplatformní software, zná problémy a nástrahy tvorby software nezávislého na běhovém prostředí |
orientovat se v cizím zdrojovém kódu nebo kódu tvořeném v týmu |
Obecné způsobilosti - po absolvování předmětu je student schopen: |
bc. studium: samostatně získávají další odborné znalosti, dovednosti a způsobilosti na základě především praktické zkušenosti a jejího vyhodnocení, ale také samostatným studiem teoretických poznatků oboru, |
|
Hodnoticí metody
|
Odborné znalosti - odborné znalosti dosažené studiem předmětu jsou ověřovány hodnoticími metodami: |
Praktická zkouška, |
Demonstrace dovedností (praktická činnost), |
Seminární práce, |
Odborné dovednosti - odborné dovednosti dosažené studiem předmětu jsou ověřovány hodnoticími metodami: |
Praktická zkouška, |
Seminární práce, |
Demonstrace dovedností (praktická činnost), |
Obecné způsobilosti - obecné způsobilosti dosažené studiem předmětu jsou ověřovány hodnoticími metodami: |
Průběžné hodnocení, |
|
Vyučovací metody
|
Odborné znalosti - pro dosažení odborných znalostí jsou užívány vyučovací metody: |
Přednáška založená na výkladu, |
Přednáška s demonstrací, |
Přednáška s diskusí, |
Laboratorní praktika, |
E-learning, |
Řešení problémů, |
Skupinová výuka, |
Samostudium, |
Samostatná práce studentů, |
Přednáška s aktivizací studentů, |
Diskuse, |
Odborné dovednosti - pro dosažení odborných dovedností jsou užívány vyučovací metody: |
Přednáška založená na výkladu, |
Přednáška s demonstrací, |
Přednáška s diskusí, |
Laboratorní praktika, |
E-learning, |
Řešení problémů, |
Skupinová výuka, |
Samostudium, |
Samostatná práce studentů, |
Přednáška s aktivizací studentů, |
Diskuse, |
Obecné způsobilosti - pro dosažení obecných způsobilostí jsou užívány vyučovací metody: |
Samostudium, |
|
|
|
|